package co.gov.medellin.sdep.sisdep.common.dto;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
 * <p>
 * Value Object para el manejo de componentes genericos de BCOPO.
 * </p>
 * <p>
 * Copyright (c) 2011<BR>
 * Consult-Soft S.A.<BR>
 * Created on: Nov 4, 2011<BR>
 * 
 * @author atabares
 * </p>
 */
public class GenericComponentVO implements Serializable {
	
	/** Serial key. */
	private static final long serialVersionUID = -2456317305903645969L;
	
	/** Identificador unico del componente. */
	private String componentId;

	/** Identificador unico del componente para el manejo en sesion. */
	private String componentKey;
	
	/** Descripcion del tipo o valor tipo. */
	private String componentDescription;
	
	/** Lista de valores asociados al componente. */
	private List componentValueList;
	
	/** Identificacion del usuario autenticado en el sistema. */
	private String loggedUserId;

	/** Identificador del usuario que creo el registro. */
	private String idCreateUser;
	
	/** Fecha en que se creo el registro. */
	private String createDate;
	
	/** Identificador del usuario que modifico por ultima vez el registro. */
	private String idModifyUser;
	
	/** Fecha en que se modifico por ultima vez el registro. */
	private String modifyDate;
	
	
	/** Contructor para controlar la inicializacion de la lista */
	public GenericComponentVO(boolean initList) {
		if(initList) {
			componentValueList = new ArrayList();
		}
	}
	
	/** Contructor por defecto */
	public GenericComponentVO() {
		componentValueList = new ArrayList();
	}
	
	/**
	* Obtiene el parametro componentKey.
	* @see GenericComponentVO#componentKey
	*
	* @return El parametro componentKey.
	*/
	public String getComponentKey() {
		return componentKey;
	}

	/**
	* Asigna el parametro componentKey.
	* @see GenericComponentVO#componentKey
	*
	* @param componentKey valor a asignar al parametro componentKey.
	*/
	public void setComponentKey(String componentKey) {
		this.componentKey = componentKey;
	}

	/**
	 * Obtiene el parametro componentId.
	 * @see GenericComponentVO#componentId
	 *
	 * @return El parametro componentId.
	 */
	public String getComponentId() {
		return componentId;
	}

	/**
	 * Asigna el parametro componentId.
	 * @see GenericComponentVO#componentId
	 *
	 * @param componentId valor a asignar al parametro componentId.
	 */
	public void setComponentId(String componentId) {
		this.componentId = componentId;
	}

	/**
	 * Obtiene el parametro componentValueList.
	 * @see GenericComponentVO#componentValueList
	 *
	 * @return El parametro componentValueList.
	 */
	public List getComponentValueList() {
		return componentValueList;
	}

	/**
	 * Asigna el parametro componentValueList.
	 * @see GenericComponentVO#componentValueList
	 *
	 * @param componentValueList valor a asignar al parametro componentValueList.
	 */
	public void setComponentValueList(List componentValueList) {
		this.componentValueList = componentValueList;
	}
	
	/**
	 * @param componentDescription the componentDescription to set
	 */
	public void setComponentDescription(String componentDescription) {
		this.componentDescription = componentDescription;
	}

	/**
	 * @return the componentDescription
	 */
	public String getComponentDescription() {
		return componentDescription;
	}

	/**
	 * @return the loggedUserId
	 */
	public String getLoggedUserId() {
		return loggedUserId;
	}

	/**
	 * @param loggedUserId the loggedUserId to set
	 */
	public void setLoggedUserId(String loggedUserId) {
		this.loggedUserId = loggedUserId;
	}

	/**
	 * @return the idCreateUser
	 */
	public String getIdCreateUser() {
		return idCreateUser;
	}

	/**
	 * @param idCreateUser the idCreateUser to set
	 */
	public void setIdCreateUser(String idCreateUser) {
		this.idCreateUser = idCreateUser;
	}

	/**
	 * @return the createDate
	 */
	public String getCreateDate() {
		return createDate;
	}

	/**
	 * @param createDate the createDate to set
	 */
	public void setCreateDate(String createDate) {
		this.createDate = createDate;
	}

	/**
	 * @return the idModifyUser
	 */
	public String getIdModifyUser() {
		return idModifyUser;
	}

	/**
	 * @param idModifyUser the idModifyUser to set
	 */
	public void setIdModifyUser(String idModifyUser) {
		this.idModifyUser = idModifyUser;
	}

	/**
	 * @return the modifyDate
	 */
	public String getModifyDate() {
		return modifyDate;
	}

	/**
	 * @param modifyDate the modifyDate to set
	 */
	public void setModifyDate(String modifyDate) {
		this.modifyDate = modifyDate;
	}

}
